package com.utils;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;

/**
 * HttpClient工具类，用于执行HTTP GET请求。
 */
public class HttpClientUtils {

    /**
     * 执行HTTP GET请求并返回响应内容。
     *
     * @param uri 请求的URL地址。
     * @return 响应内容的字符串形式，如果发生异常则返回null。
     */
    public static String doGet(String uri) {
        StringBuilder result = new StringBuilder(); // 用于构建响应字符串
        try {
            URL url = new URL(uri); // 根据传入的URI创建URL对象
            HttpURLConnection conn = (HttpURLConnection) url.openConnection(); // 打开HTTP连接
            BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8")); // 创建BufferedReader以读取响应
            String line; // 用于存储每次读取的行
            while ((line = in.readLine()) != null) { // 循环读取响应内容
                result.append(line).append("\n"); // 将读取的内容追加到StringBuilder对象中
            }
            in.close(); // 关闭BufferedReader
            return result.toString(); // 返回构建的响应字符串
        } catch (Exception e) {
            e.printStackTrace(); // 打印异常堆栈信息
            return null; // 发生异常时返回null
        }
    }
}
